home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
lisp
/
kcl
/
akcl
/
akcl.lha
/
akcl
/
V
/
c
/
predicate.c
< prev
next >
Wrap
C/C++ Source or Header
|
1989-09-10
|
5KB
|
310 lines
Changes file for /usr/local/src/kcl/./c/predicate.c
Created on Sun Sep 10 12:41:47 1989
Usage \n@s[Original text\n@s|Replacement Text\n@s]
See the file rascal.ics.utexas.edu:/usr2/ftp/merge.c
for a program to merge change files. Anything not between
"\n@s[" and "\n@s]" is a simply a comment.
This file was constructed using emacs and merge.el
Enhancements Copyright (c) W. Schelter All rights reserved.
by (Bill Schelter) wfs@carl.ma.utexas.edu
****Change:(orig (239 239 c))
@s[ if (t == t_cfun || t == t_cclosure)
@s| if (t == t_cfun || t == t_cclosure || t == t_sfun || t == t_gfun
|| t == t_vfun)
@s]
****Change:(orig (263 263 c))
@s[ type_of(vs_base[0]) == t_cclosure)
@s| type_of(vs_base[0]) == t_cclosure ||
type_of(vs_base[0]) == t_sfun ||
type_of(vs_base[0]) == t_gfun ||
type_of(vs_base[0]) == t_vfun
)
@s]
****Change:(orig (363 363 a))
@s[ if (eql(vs_base[0], vs_base[1]))
vs_base[0] = Ct;
else
vs_base[0] = Cnil;
vs_pop;
}
bool
@s| if (eql(vs_base[0], vs_base[1]))
vs_base[0] = Ct;
else
vs_base[0] = Cnil;
vs_pop;
}
bool
@s]
****Change:(orig (365 365 c))
@s[equal(x, y)
object x, y;
@s|equal(x, y)
register object x;
#ifdef UNIX /* in non unix case cs_check want's an address */
register
#endif
object y;
@s]
****Change:(orig (367 367 c))
@s[{
enum type t;
@s|{
register enum type t;
@s]
****Change:(orig (369 369 c))
@s[
cs_check(x);
@s|
cs_check(y);
@s]
****Change:(orig (374 374 c))
@s[ return(FALSE);
if (eql(x, y))
@s| return(FALSE);
if (x==y)
@s]
****Change:(orig (385 385 c))
@s[ goto BEGIN;
case t_string:
@s| goto BEGIN;
case t_symbol: return FALSE;
case t_vector: case t_array: return FALSE;
case t_fixnum :
return(fix(x)==fix(y));
case t_shortfloat:
return(x->SF.SFVAL==y->SF.SFVAL);
case t_longfloat:
return(x->LF.LFVAL==y->LF.LFVAL);
case t_string:
@s]
****Change:(orig (386 386 a))
@s[ return(string_eq(x, y));
@s| return(string_eq(x, y));
@s]
****Change:(orig (387 387 a))
@s[
@s|
@s]
****Change:(orig (406 407 c))
@s[
if (x->str.str_name != y->str.str_name)
@s| if (x->str.str_def != y->str.str_def)
@s]
****Change:(orig (409 411 c))
@s[ for (i = 0; i < x->str.str_length; i++)
if (!equal(x->str.str_self[i], y->str.str_self[i]))
return(FALSE);
@s| {int leng= S_DATA(x->str.str_def)->length;
unsigned char *s_type= & SLOT_TYPE(x->str.str_def,0);
unsigned short *s_pos= & SLOT_POS(x->str.str_def,0);
for (i = 0; i < leng; i++,s_pos++)
{if (s_type[i]==0)
{if (!equal(STREF(object,x,*s_pos),STREF(object,y,*s_pos)))
return FALSE;}
else
if (! (*s_pos & (sizeof(object)-1)))
switch(s_type[i]){
case aet_lf:
if(STREF(longfloat,x,*s_pos) != STREF(longfloat,y,*s_pos))
return(FALSE);
break;
case aet_sf:
if(STREF(shortfloat,x,*s_pos)!=STREF(shortfloat,y,*s_pos))
return(FALSE);
break;
default:
if(STREF(int,x,*s_pos)!=STREF(int,y,*s_pos))
return(FALSE);
break;}}
@s]
****Change:(orig (413 413 c))
@s[ return(TRUE);
}
@s| return(TRUE);
}}
@s]
****Change:(orig (437 437 c))
@s[ return(FALSE);
}
return(FALSE);
@s| return(FALSE);
}
return(eql(x,y));
@s]
****Change:(orig (488 489 c))
@s[ if (ty == t_array && x->a.a_rank != y->a.a_rank)
goto ARRAY;
@s| if (ty == t_array && x->a.a_rank == y->a.a_rank)
{ if (x->a.a_rank > 1)
{int i=0;
for (i=0; i< x->a.a_rank; i++)
{if (x->a.a_dims[i]!=y->a.a_dims[i])
return(FALSE);}}
goto ARRAY;}
@s]
****Change:(orig (507 507 c))
@s[ goto BEGIN;
case t_structure:
{
@s| goto BEGIN;
case t_structure:
{
@s]
****Change:(orig (509 510 c))
@s[
if (x->str.str_name != y->str.str_name)
@s| if (x->str.str_def != y->str.str_def)
@s]
****Change:(orig (512 514 c))
@s[ for (i = 0; i < x->str.str_length; i++)
if (!equalp(x->str.str_self[i], y->str.str_self[i]))
return(FALSE);
@s| {int leng= S_DATA(x->str.str_def)->length;
unsigned char *s_type= & SLOT_TYPE(x->str.str_def,0);
unsigned short *s_pos= & SLOT_POS(x->str.str_def,0);
for (i = 0; i < leng; i++,s_pos++)
{if (s_type[i]==0)
{if (!equalp(STREF(object,x,*s_pos),STREF(object,y,*s_pos)))
return FALSE;}
else
if (! (*s_pos & (sizeof(object)-1)))
switch(s_type[i]){
case aet_lf:
if(STREF(longfloat,x,*s_pos) != STREF(longfloat,y,*s_pos))
return(FALSE);
break;
case aet_sf:
if(STREF(shortfloat,x,*s_pos)!=STREF(shortfloat,y,*s_pos))
return(FALSE);
break;
default:
if(STREF(int,x,*s_pos)!=STREF(int,y,*s_pos))
return(FALSE);
break;}}
@s]
****Change:(orig (516 516 c))
@s[ return(TRUE);
}
@s| return(TRUE);
}}
@s]
****Change:(orig (529 529 a))
@s[ if (x->a.a_dim != y->a.a_dim)
return(FALSE);
@s| if (x->a.a_dim != y->a.a_dim)
return(FALSE);
j=x->a.a_dim;
if (tx!=t_array)
/*So these are both t_vector,t_string,or t_bitvector
and may have fill-pointers so limit J must be decreased*/
{if (x->v.v_hasfillp && (j > x->v.v_fillp))
j=x->v.v_fillp;
if (y->v.v_hasfillp && (j > y->v.v_fillp))
j=y->v.v_hasfillp;}
@s]
****Change:(orig (532 532 c))
@s[ for (i = 0, j = x->a.a_dim; i < j; i++) {
@s| for (i = 0; i < j; i++) {
@s]